feat(linux): add IPv6 support for VPN gateway - #262
Conversation
|
Hi, thanks for this! I'll take a closer look later, but for now I have a few suggestions:
|
This comment was marked as resolved.
This comment was marked as resolved.
…t APIs for Android - Refactored IPv6 derivation logic into `config/ipv6.go` for cleaner abstraction. - Updated `VPNLocalIPMaskV6Unlocked` to automatically compute and return the derived IPv6 address based on the node's PeerID, avoiding redundant derivation in higher layers (`application.go`). - Added `ipv6Addr` to `PeerStatusInfo` JSON payload for exchanging IPv6 addresses with peers. - Exported `GetVpnNetworkAddressV4` and `GetVpnNetworkAddressV6` in `gomobile-lib` so the Android VPN service can query the exact subnet base addresses required for split-tunnel routing.
- Invert `if exists` in `service/tunnel.go` to reduce nestif complexity. - Update `TestTunnelPackets` to use the new derived IPv6 addresses from config, fixing packet routing mismatch.
pymq
left a comment
There was a problem hiding this comment.
Overall looks good to me except a few possible improvements
…ze IPv6 handling
…v6 updates - Return both A and AAAA records for TypeANY DNS queries in awldns - Allow updating peer.IPAddrV6 when a peer announces a changed IPv6 address in auth_status - Trigger ensureIPv6AddressLocked in SetIdentity to prevent unassigned IPv6 prefix on fresh node configs - Revert unintended comment formatting in test_suite_test.go
|
I tested it manually on my Linux machine:
|
|
I pushed your branch to this repo to run e2e tests: They all failed: |
Okay, I'll take a look when I have some free time. |
…store early peer check in StreamHandler"
…fix CI IPv6 test
I tested that look like fine. you can see. https://github.com/NNdroid/awl/actions/runs/30325402319 |
|
Oh, I'm sorry. It looks like the issue was on my end |
|
Thank you so much for your work! From my perspective, it's ready to be merged. There are still a few minor things we could improve, but the Linux support looks solid. Are you planning to push anything else to this branch, or can I go ahead and merge it? Also, do you have any plans for follow-up PRs, such as support for other platforms or any additional improvements? |
You can go ahead and merge it. |
I only implemented it on Linux.